import { listFileTree } from "@/api/disk/file";
import { listFile, pathFile, searcFile, searchPathFile } from "@/api/disk/file";

const fileList = defineStore(
	'file-list', {
	state: () => ({
		// 表格中显示的列
		selectedColumnList: localStorage.getItem('qiwen_selected_column_list'),
		// 文件展示模式 0 列表模式 | 1 网格模式 | 2 时间线模式
		fileModel: localStorage.getItem('qiwen_file_model'),
		// 网格模式 & 时间线模式下 图标大小 单位px
		gridSize: localStorage.getItem('qiwen_grid_size')
			? Number(localStorage.getItem('qiwen_grid_size'))
			: 80,
		// 批量模式下：被选中的文件列表
		selectedFiles: [],
		// 是否批量操作：true - 批量，false - 单文件
		isBatchOperation: false,
		//文件夹id：'' - 全部文件
		dirId: "",
		//后端路径
		lucyUrl: "http://lucy.apisev.cn",
		//刷新
		flushed: false
	}),
	actions: {
		/**
		* 改变文件展示模式
		* @description 文件展示模式保存在 Vuex 和 cookie 中
		* @param {string} data 文件展示模式
		*/
		changeFileModel(data) {
			localStorage.setItem('qiwen_file_model', data)
			console.log(data)
			this.fileModel = data
		},
		/**
		 * 根据路径查询文件
		 * @description 根据路径查询位置
		 * @param {string} path 文件路径
		 */
		searchByPath(path) {
			const pathname = path.replace(/\//g, ",").slice(1)
			if (pathname.length === 0) {
				this.dirId = " "
			} else {
				searchPathFile(pathname).then(res => {
					this.dirId = res[res.length - 1]
				})
			}
		},
		/**
		 * 设置批量操作模式下被选中的文件列表
		 * @param {array} data 批量操作模式下，被选中的文件列表
		 */
		changeSelectedFiles(data) {
			this.selectedFiles = data
		},
		/**
		  * 设置是否批量操作
		* @param {boolean} data 是否批量操作
		  */
		changeIsBatchOperation(data) {
			this.isBatchOperation = data
		}
		//递归遍历树结构
		// recursionPath(pathname, tree) {
		// 	const newTree = tree.find(element => {
		// 		return element.name === pathname[0]
		// 	});
		// 	if (pathname.length === 1) {
		// 		this.dirId = newTree.id
		// 		return;
		// 	}
		// 	let newPathName = pathname.slice(1);
		// 	this.recursionPath(newPathName, newTree.children)
		// }
	}
})

export default fileList